Skip to content

feat: RW docs comments integration + dev Alice/Bob mock auth#69

Merged
yumike merged 1 commit into
mainfrom
feat/comments-integration
Jun 22, 2026
Merged

feat: RW docs comments integration + dev Alice/Bob mock auth#69
yumike merged 1 commit into
mainfrom
feat/comments-integration

Conversation

@yumike

@yumike yumike commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Adds inline commenting on RW documentation rendered in Backstage, plus a dev-only multi-user auth harness to exercise it. Squashed from the full development branch.

Backend — @rwdocs/backstage-plugin-rw-backend

  • SQLite/Postgres-backed CommentStore (knex migration, uuid PK, soft-delete, atomic resolve-stamp, transactional soft-delete/restore closing a TOCTOU).
  • Entity-scoped /comments router: create / list / get / PATCH (resolve · edit · restore) / delete, with input validation (16 KiB body cap, parentId/siteRef checks), Backstage permission dispatch + author floor, author profile resolution (displayName/avatar), structured logging, and 503 on catalog outage.

Common — @rwdocs/backstage-plugin-rw-common

  • rwComment.{read,create,edit,resolve,delete} permissions + isCommentAuthor rule.

Frontend — @rwdocs/backstage-plugin-rw

  • RwClient comment client + comments wiring through RwEntityDocsViewer / RwDocsViewer; warns (instead of silently disabling) when the comments-enabled probe fails.

Dev harness — packages/app, packages/backend, examples/

  • Dev-only Alice/Bob proxy auth providers + a SignInPage picker (delegating to ProxiedSignInPage, with localStorage resume); alice/bob User catalog entities.

Dependencies

  • @rwdocs/{viewer,core}^0.1.27 (embedded comment deep-linking: copy-link button + n/p URL-hash mirroring via replaceState).

Verification

  • make all green (typecheck / lint / build); comments test suites pass.
  • Manually verified in the running app: Alice/Bob attribution + avatars, author-floor (non-author can't edit/delete), resolve is collaborative, and the embedded deep-linking (copy-link + n/p hash, no Back/Forward history growth).

🤖 Generated with Claude Code

Adds inline commenting on RW documentation rendered in Backstage, plus a
dev-only multi-user auth harness to exercise it.

Backend (@rwdocs/backstage-plugin-rw-backend):
- SQLite/Postgres CommentStore (knex migration, uuid PK, soft-delete, atomic
  resolve-stamp, transactional soft-delete/restore closing a TOCTOU).
- Entity-scoped /comments router: create/list/get/PATCH(resolve|edit|restore)/
  delete with input validation (16 KiB body cap, parentId/siteRef checks),
  Backstage permission dispatch + author floor, author profile resolution
  (displayName/avatar), structured logging, 503 on catalog outage.

Common (@rwdocs/backstage-plugin-rw-common):
- rwComment.{read,create,edit,resolve,delete} permissions + isCommentAuthor rule.

Frontend (@rwdocs/backstage-plugin-rw):
- RwClient comment client + comments wiring through RwEntityDocsViewer /
  RwDocsViewer; warn (not silently disable) when the comments-enabled probe fails.

Dev harness (packages/app, packages/backend, examples):
- Dev-only Alice/Bob proxy auth providers + a SignInPage picker (delegating to
  ProxiedSignInPage, with localStorage resume); alice/bob User catalog entities.

Deps: @rwdocs/{viewer,core} ^0.1.27 (embedded comment deep-linking: copy-link
button + n/p URL-hash mirroring via replaceState).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@yumike yumike force-pushed the feat/comments-integration branch from 050fbef to 606d570 Compare June 22, 2026 12:45
@yumike yumike merged commit db9e5d4 into main Jun 22, 2026
1 check passed
@yumike yumike deleted the feat/comments-integration branch June 22, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant